package com.example.demo.service.impl;

import com.example.demo.entity.AlarmData;
import com.example.demo.service.AlarmService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;

@Service
public class AlarmServiceImpl implements AlarmService {

    private static final Logger logger = LoggerFactory.getLogger(AlarmServiceImpl.class);

    @Override
    public void processAlarmData(AlarmData alarmData) {
        // 打印接收的报警数据
        logger.info("接收到报警数据: {}", alarmData);

        // TODO: 实现具体的业务逻辑
        // 1. 验证数据完整性
        // 2. 存储报警信息到数据库
        // 3. 处理视频和图片信息
        // 4. 分析检测目标数据
        // 5. 触发相应的业务流程

        // 示例：打印报警的基本信息
        logger.info("报警信息: 布控编号={}, 摄像头编号={}, 发生时间={},识别人脸={},抓拍图片地址={},抓拍视频地址={}",
                alarmData.getControlCode(),
                alarmData.getStreamCode(),
                alarmData.getCreateTime(),
                    alarmData.getImageDetects().get(0).get(0).getClass_name(),
                    alarmData.getImageArray().get(0).getImagePath(),
                    alarmData.getVideoArray().get(0).getVideoPath());

        //视频和图片地址是报警的json信息加：http://192.168.5.213:9001/storage/access?filename=前缀
        //例如：http://192.168.5.213:9001/storage/access?filename=alarm/control7948c04d66/20250701/20250701145043/1/20250701145043.mp4


        // 示例：处理检测目标信息
//        if (alarmData.getImageDetects() != null && !alarmData.getImageDetects().isEmpty()) {
//            int personCount = 0;
//            for (List<com.example.demo.entity.ImageDetect> detects : alarmData.getImageDetects()) {
//                for (com.example.demo.entity.ImageDetect detect : detects) {
//                    if ("person".equals(detect.getClass_name())) {
//                        personCount++;
//                    }
//                }
//            }
//            logger.info("检测到 {} 个人", personCount);
//        }

        // TODO: 实现其他业务逻辑
    }
}    